﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CBE.Model;
using Common.DataAccess;
using Microsoft.Data.Extensions;

namespace CBE.DataAccess
{
    public class ReporteDemandaProductosDataAccess : GenericReportDataAccess<ReporteDemandaProductosView, ReporteDemandaProductosCriteria, CBEEntities>
    {
        public override List<ReporteDemandaProductosView> ReadViewsByCriteria(ReporteDemandaProductosCriteria criteriaEntity)
        {
            var listOfVentas = ObjectContext.CreateStoreCommand("ReporteDemandaProductos_PorRangoFechas", System.Data.CommandType.StoredProcedure,
                new System.Data.SqlClient.SqlParameter("@pFechaDesde", criteriaEntity.FechaDesde),
                new System.Data.SqlClient.SqlParameter("@pFechaHasta", criteriaEntity.FechaHasta))
                .Materialize<ReporteDemandaProductosView>(r => new ReporteDemandaProductosView
                {
                    ID = r.Field<Guid>("ID"),
                    Codigo = r.Field<String>("Codigo"),
                    Descripcion = r.Field<String>("Descripcion"),
                    Marca = r.Field<String>("Marca"),
                    Presentacion = r.Field<String>("Presentacion"),
                    RazonSocialProveedor = r.Field<String>("RazonSocial"),
                    CantidadVentas = r.Field<Int32>("CantidadVentas"),
                    ImporteTotal = r.Field<Decimal>("ImporteTotal"),
                    StockActual = r.Field<Int32>("StockActual"),
                    FechaUltimaCompra = r.Field<DateTime>("FechaUltimaCompra")
                });

            return listOfVentas.ToList();
        }
    }
}
